/******************************************************************************
 * @file       aboutus.cpp
 * @brief      关于我们
 *****************************************************************************/
#include "aboutus.h"
#include <QQmlContext>
#include <QJsonValue>

// 静态成员初始化
AboutUs *AboutUs::_aboutUs = NULL;

/**
 * @brief 构造函数
 */
AboutUs::AboutUs()
{
    this->setResizeMode(QQuickWidget::SizeRootObjectToView);
    this->setFixedSize(511, 399);
    this->setWindowModality(Qt::ApplicationModal); // 设为模态
    this->setWindowTitle("关于我们");

    // 设置属性

    // 暴露自身对象
    this->getContext()->setContextProperty("aboutUs", this);

    // 加载qml
    this->setResizeMode(QQuickWidget::SizeRootObjectToView);
    this->setSource(QUrl("qrc:/aboutus.qml"));
}

/**
 * @brief 析构函数
 */
AboutUs::~AboutUs() {}

/**
 * @brief 设置窗口
 * @param text 关于我们信息
 */
void AboutUs::aboutUsBox(QWidget *parent, QString text)
{
    if(!_aboutUs){
        _aboutUs = new AboutUs();
    }

    _aboutUs->setAboutUsMessage(text);
    _aboutUs->setParent(parent, Qt::Window | Qt::WindowCloseButtonHint);
    _aboutUs->show();
}

/**
 * @brief getContext 获取qmlcontext
 * @return qmlContext
 */
QQmlContext* AboutUs::getContext() const
{
    return this->rootContext();
}

/**
 * @brief getRootObject 获取rootObject
 * @return rootObject
 */
QObject* AboutUs::getRootObject() const
{
    qDebug() << "this->rootObject()" << this->rootObject();
    return (QObject*)this->rootObject();
}

/**
 * @brief 设置关于我们信息
 * @param aboutUs 关于我们信息
 */
void AboutUs::setAboutUsMessage(QString aboutUs)
{
    if(_aboutUsMsg != aboutUs){
        _aboutUsMsg = aboutUs;
        emit AboutUs::aboutUsMessageChanged(_aboutUsMsg);
    }
}

/**
 * @brief 获取关于我们信息
 * @return 关于我们信息
 */
QString AboutUs::getAboutUsMessage() const
{
    return _aboutUsMsg;
}

